package main

import "fmt"

// 数组是值类型！
func main() {
	a := [4]int{1, 2, 3, 4}
	fmt.Printf("1. 变量 a 的内存地址：%p, 值为：%v\n\n", &a, a)
	fmt.Printf("数组型变量a的内存地址：%p \n\n", a)

	changeArrayVal(a)
	fmt.Printf("2. changeArrayVal函数调用之后内：变量 a 的内存地址：%p, 值为：%v\n\n", &a, a)
	changeArrayPtr(&a)
	fmt.Printf("3. changeArrayPtr函数调用之后内：变量 a 的内存地址：%p, 值为：%v\n\n", &a, a)
}

func changeArrayVal(a [4]int) {
	fmt.Printf("--------------changeArrayVal函数内：值参数a的内存地址：%p, 值为：%v \n", &a, a)
	fmt.Printf("--------------changeArrayVal函数内：值参数a的内存地址：%p, \n", a) //获取不到地址
	a[0] = 90
}

func changeArrayPtr(a *[4]int) {
	fmt.Printf("--------------changeArrayPtr函数内：值参数a的内存地址：%p, 值为：%v \n", &a, a)
	(*a)[1] = 250
}
